.inline-footnotes {
  a.expand-footnote {
    user-select: none;
    padding: 0 0.4em;
    color: var(--primary-low-mid-or-secondary-high);
    background: var(--primary-low);
    border-radius: 3px;
    min-height: 1.25em;
    display: inline-flex;
    align-items: center;

    &:hover {
      background: var(--primary-medium);
      color: var(--secondary);
    }

    > * {
      pointer-events: none;
    }
  }

  // This is hack to work with lazy-loading, we will trick the browser
  // to believe the image is in the DOM and can be loaded
  .footnotes-list,
  .footnotes-sep {
    position: absolute;

    // the left/right positioning prevents overflow issues
    // with long words causing overflow on small screens
    left: 0;
    right: 0;
  }

  .footnotes-sep,
  .footnotes-list,
  .footnote-ref {
    display: none;
  }
}

#footnote-tooltip {
  background-color: var(--primary-low);
  color: var(--primary);
  padding: 0.5em;
  font-size: var(--font-down-1);
  border-radius: 3px;
  display: none;
  z-index: z("modal", "tooltip");
  max-width: 400px;
  overflow-wrap: break-word;
  box-sizing: border-box;

  .mobile-view & {
    // tooltips are positioned 5px from the left
    // - 10px accounts for this and gives 5px space on the right
    max-width: calc(100dvw - 10px);
  }

  .footnote-tooltip-content {
    overflow: hidden;

    .footnote-backref {
      display: none;
    }

    img {
      object-fit: cover;
      max-width: 100%;
    }

    p {
      margin: 0;
    }
  }
}

#footnote-tooltip[data-show] {
  display: block;
}

#arrow,
#arrow::before {
  position: absolute;
  width: 10px;
  height: 10px;
  background: inherit;
}

#arrow {
  visibility: hidden;
}

#arrow::before {
  visibility: visible;
  content: "";
  transform: rotate(45deg);
}

#footnote-tooltip[data-popper-placement^="top"] > #arrow {
  bottom: -4px;
}

#footnote-tooltip[data-popper-placement^="bottom"] > #arrow {
  top: -4px;
}

#footnote-tooltip[data-popper-placement^="left"] > #arrow {
  right: -4px;
}

#footnote-tooltip[data-popper-placement^="right"] > #arrow {
  left: -4px;
}

.ProseMirror {
  counter-reset: prosemirror-footnote;

  .footnote {
    display: inline-block;

    &::after {
      padding: 0 0.125em;
      display: inline-block;
      content: "[" counter(prosemirror-footnote) "]";
      vertical-align: super;
      font-size: 0.75rem;
      line-height: 1;
      counter-increment: prosemirror-footnote;
    }
  }

  .footnote-tooltip {
    cursor: auto;
    position: absolute;
    max-height: 40%;
    overflow: auto;
    left: 0;
    right: 0;
    bottom: 0;
    margin: 0.5rem;
    padding-top: 0.5rem;
    background-color: var(--primary-50);
    border-radius: var(--d-border-radius);
    z-index: z("modal", "tooltip");

    &:focus-within {
      outline: 1px solid var(--primary-low);
    }

    &::before {
      top: 0.1rem;
      left: 0.25rem;
      position: absolute;
      content: "[" var(--footnote-counter) "]:";
      font-size: 0.75rem;
      color: var(--primary-low-mid);
    }
  }
}
